home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / hope / machope.lha / hope / Makefile < prev    next >
Makefile  |  1990-07-15  |  4KB  |  121 lines

  1. # Fiddlable parameters:
  2. NAME    = hope
  3. #      (what the program is called)
  4. BIN    = $$HOME/bin
  5. #      (where to put the executable version)
  6. HOPELIB    = $$HOME/hope/lib
  7. #      (where the standard modules live)
  8. STATS    = # -DSTATS
  9. #      (set this to get space usage statistics)
  10. LEAKS    = # -DLEAKS
  11. #      (set this to get leak checks)
  12. DEBUG    = -DEBUG
  13. #      (set this to facilitate debugging, by retaining symbols)
  14. PROFILE    = # -pg
  15. #      (set this to get profiling)
  16.  
  17. SHELL    = /bin/sh
  18. CPPFLAGS = '-DHOPELIB="'$(HOPELIB)'"' $(STATS) $(LEAKS) $(DEBUG)
  19. CFLAGS    = -O -pipe $(PROFILE)
  20. LDFLAGS    = -n $(PROFILE)
  21. LINTFLAGS = -ahz
  22. YFLAGS    =
  23.  
  24. HEADERS    = cell.h defs.h deftype.h error.h expr.h memory.h module.h op.h \
  25.       path.h strings.h typevar.h
  26. C_SRCS    = builtin.c cell.c compare.c compile.c deftype.c eval.c expr.c \
  27.       interpret.c main.c memory.c module.c number.c path.c pr_expr.c \
  28.       pr_value.c stream.c strings.c type.c yylex.c
  29. CFILES    = $(C_SRCS) yyparse.c
  30. SOURCES    = $(HEADERS) $(C_SRCS) yyparse.y
  31. OBJECTS    = builtin.o cell.o compare.o compile.o deftype.o eval.o expr.o \
  32.       interpret.o main.o memory.o module.o number.o path.o pr_expr.o \
  33.       pr_value.o stream.o strings.o type.o yylex.o yyparse.o
  34. LIBS    =
  35.  
  36. $(NAME): $(OBJECTS)
  37.     $(CC) $(LDFLAGS) -o $(NAME) $(OBJECTS) $(LIBS)
  38.  
  39. install: $(NAME)
  40.     /bin/cp $(NAME) $(BIN)
  41.     strip $(BIN)/$(NAME)
  42.  
  43. sources: $(CFILES)
  44.  
  45. clean:
  46.     rm -f *.o yyparse.[ch] y.* core a.out lint checks tags LOG
  47.     cd doc; rm -f *.dvi *.log *.aux
  48.  
  49. clobber: clean
  50.     rm -f $(NAME)
  51.  
  52. yyparse.h yyparse.c: yyparse.y multiply.sed
  53.     sed -f multiply.sed yyparse.y >y.tab.y
  54.     $(YACC) $(YFLAGS) -d y.tab.y
  55. #    rm -f y.tab.y
  56.     mv y.tab.c yyparse.c
  57.     mv y.tab.h yyparse.h
  58.  
  59. tags:    $(SOURCES)
  60.     ctags -w $(SOURCES)
  61.  
  62. lint:    $(OBJECTS)
  63.     lint $(LINTFLAGS) $(CPPFLAGS) $(LIBS) $(CFILES) >lint
  64.  
  65. # test a new version of the interpreter, by running it on some examples
  66. # and comparing with the expected output.
  67.  
  68. checks:    $(NAME) test/*.in
  69.     for file in test/*.in;\
  70.     do    name=`basename $$file .in`;\
  71.         ./$(NAME) <$$file | diff - test/$$name.out |\
  72.             sed "s/^/$$name: /";\
  73.     done >checks
  74.  
  75. # Generate dependencies of source files on header files.
  76. # Only inclusions of relative file names yield dependencies.
  77.  
  78. depend:    $(CFILES)
  79.     (echo '/^#.* PUT NO STUFF BELOW/,$$d'; echo w; echo q) | ed - Makefile
  80.     echo '# Dependencies generated by make depend: PUT NO STUFF BELOW' >>Makefile
  81.     for file in $(CFILES);\
  82.     do    $(CC) $(CPPFLAGS) -E $$file |\
  83.         sed -n 's@^# [1-9][0-9]* "\([^/].*\.h\)".*@\1@p' |\
  84.         sed -e 's@^\./@@' -e 's@[^/]*/\.\./@@g' |\
  85.         sed "s/^/`basename $$file .c`.o: /";\
  86.     done | sort -u | awk '\
  87. $$1 != last || length(line)+length($$2) > 78 { print line; line = last = $$1 }\
  88.     { line = line " " $$2 }\
  89. END    { print line }' >>Makefile
  90.  
  91. # Dependencies generated by make depend: PUT NO STUFF BELOW
  92.  
  93. builtin.o: cell.h defs.h deftype.h error.h expr.h memory.h op.h path.h
  94. builtin.o: strings.h typevar.h
  95. cell.o: cell.h defs.h deftype.h error.h expr.h memory.h path.h strings.h
  96. cell.o: typevar.h
  97. compare.o: cell.h defs.h deftype.h expr.h path.h strings.h typevar.h
  98. compile.o: defs.h deftype.h expr.h path.h strings.h typevar.h
  99. deftype.o: defs.h deftype.h error.h memory.h op.h strings.h typevar.h
  100. eval.o: defs.h deftype.h expr.h path.h strings.h typevar.h
  101. expr.o: defs.h deftype.h error.h expr.h memory.h path.h strings.h typevar.h
  102. interpret.o: cell.h defs.h deftype.h error.h expr.h memory.h path.h strings.h
  103. interpret.o: typevar.h
  104. main.o: defs.h deftype.h expr.h memory.h module.h op.h path.h strings.h
  105. main.o: typevar.h
  106. memory.o: defs.h error.h memory.h
  107. module.o: defs.h deftype.h error.h expr.h memory.h module.h op.h path.h
  108. module.o: strings.h typevar.h
  109. number.o: defs.h deftype.h error.h expr.h path.h strings.h typevar.h
  110. path.o: defs.h memory.h path.h
  111. pr_expr.o: defs.h deftype.h expr.h op.h path.h strings.h typevar.h
  112. pr_value.o: cell.h defs.h deftype.h expr.h memory.h op.h path.h strings.h
  113. pr_value.o: typevar.h
  114. stream.o: cell.h defs.h deftype.h error.h expr.h path.h strings.h typevar.h
  115. strings.o: defs.h memory.h strings.h
  116. type.o: cell.h defs.h deftype.h error.h expr.h op.h path.h strings.h typevar.h
  117. yylex.o: defs.h deftype.h error.h expr.h module.h op.h path.h strings.h
  118. yylex.o: typevar.h yyparse.h
  119. yyparse.o: defs.h deftype.h expr.h memory.h module.h op.h path.h strings.h
  120. yyparse.o: typevar.h
  121.